﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
//System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
namespace qlHieuThuocDongY.DataAccess
{
    class ConnectData
    {
        private SqlConnection conn;
        private DataTable dataTable;
        public SqlDataAdapter dataAp;

        
        //tạo Contructor
        public ConnectData()
        {
            Connect();
        }
        // kết nối CSDL
        public void Connect()
        {
            string strConn = @"Data Source=DATPV-PC\SQLEXPRESS;Initial Catalog=qlHieuThuocDongY;Integrated Security=True";
            try
            {
                conn = new SqlConnection(strConn);
                conn.Open();
                conn.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi: " + ex.Message);
            }
        }

        // Tiếp theo ta tạo một phương thức lấy DataTable với câu truy vấn truyền vào,
       
        public DataTable GetDataTable(string sql)
        { 
                // tạo dataAdapter thực hiện câu truy vấn
                dataAp = new SqlDataAdapter(sql, conn);
                // Đổ dữ liệu vào DataTable
                dataTable = new DataTable();
                dataAp.Fill(dataTable);
                return dataTable; 
        }

        // Hàm thực hiện truy vấn INSERT,UPDATE,DELETE
        public bool ExcuteQuery(string sql)
        {
            int numRecordsEffect = 0;
            try
            {
                if (conn.State == ConnectionState.Closed)
                    conn.Open();
                SqlCommand cmd = new SqlCommand(sql,conn);
                numRecordsEffect = cmd.ExecuteNonQuery();
                if (conn.State == ConnectionState.Open)
                    conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi! "+ex.Message);

            }
            if (numRecordsEffect > 0)
                return true;
            return false;
        }
        //lấy mã cuối cùng
        public string GetLasID(string nameTable, string nameFiled)
        {
            string sql = "SELECT TOP 1 " + nameFiled + " FROM " + nameTable + " ORDER BY " + nameFiled + " DESC";
            // Thực hiện câu truy vấn trên
            GetDataTable(sql);
            return dataTable.Rows[0][nameFiled].ToString();
        }
        public bool CheckExistValue(string nameTable, string nameFiled, string value)
        {
             string sql = "SELECT * FROM "+nameTable+" WHERE "+nameFiled+" = '"+value+"'";
            GetDataTable(sql);
            // Đếm số dòng trả về, nếu > 0 tức là tồn tại value
            if (dataTable.Rows.Count > 0)
                return true;
            return false ;
        }
    }
}
